package com.hy;

import java.util.Arrays;
import java.util.Random;

/**
 * Created With IntelliJ IDEA.
 * Descriptions:冒泡排序
 * author: Mr.Du
 * Date: 2022/11/11
 * Time: 9:41
 */
public class BubbleSort {
    
    public static void main(String[] args) {
        BubbleSort bSort = new BubbleSort();
        int[] nums = new int[10];
        Random r = new Random();
        // 跑五次
        for(int i = 0;i < 5;i++){
            for(int j = 0; j < nums.length;j++){
                nums[j] = r.nextInt(1000);
            }
            System.out.println("原数组: ");
            System.out.println(Arrays.toString(nums));
            bSort.bubbleSort(nums);
            System.out.println("冒泡排序后的数组: ");
            System.out.println(Arrays.toString(nums));
        }
    }
    
    /**
     *  冒泡排序(升序)思想：将数组从前到后进行两两比较，将比较结果中值大的放在后面，那么一趟走下来就可以确定数组中最大元素(在该趟范围的最后一个位置)
     * @param nums
     */
    public void bubbleSort(int[] nums){
        // 趟数
        for(int i = 0;i<nums.length;i++){
            // 两两进行比较
            for(int j = 0;j<nums.length - i - 1;j++){
                if(nums[j] > nums[j+1]){
                    int tmp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = tmp;
                }
            }
        }
    }
}
